<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
if ( ! function_exists('to_excel'))
{
    function to_excel($query, $filename='exceloutput'){
         $headers = ""; // just creating the var for field headers to append to below
         $data = ''; // just creating the var for field data to append to below    
         $obj =& get_instance();
        
         $fields = $query->field_data();
         if ($query->num_rows() == 0) {
              echo '<p>The table appears to have no data.</p>';
         } else {
              foreach ($fields as $field) {
                 $headers .= $field->name . "\t";
              }
              header("Content-type: application/x-msdownload");
              header("Content-Disposition: attachment; filename=$filename.xls");
              echo "$headers\n";
              foreach ($query->result() as $row) {
                   $line = '';
                   foreach($row as $value) {
                        if ((!isset($value)) OR ($value == "")) {
                             $value = str_replace('"', '""', $value);
                             $value = '"' . "". '"' . "\t";
                        } else {
                             $value = str_replace('"', '""', $value);
                             $value = str_replace('.', ',', $value);
                             $value = '"' . $value . '"' . "\t";
                        }
                        $line .= $value;
                   }
                   echo str_replace("\r","",trim($line))."\n";
              }
          }
    }
}